package ${packageName}.service.${moduleName};

import ${packageName}.model.dto.${moduleName}.${classInfo.className}DTO;
import ${packageName}.model.dto.${moduleName}.${classInfo.className}QueryDTO;
import ${packageName}.model.common.PageResult;
import java.util.List;

/**
 * ${classInfo.className} Service Interface
 * @author ${authorName} ${.now?string('yyyy-MM-dd')}
 */
public interface ${classInfo.className}Service {

    /**
     * Add new ${classInfo.className}
     * @param dto ${classInfo.className} data transfer object
     */
    void add(${classInfo.className}DTO dto);

    /**
     * Delete ${classInfo.className} by id
     * @param id primary key
     */
    void delete(Long id);

    /**
     * Get ${classInfo.className} list
     * @param dto query conditions
     * @return list of ${classInfo.className}DTO
     */
    List<${classInfo.className}DTO> list(${classInfo.className}DTO dto);

    /**
     * Update ${classInfo.className}
     * @param dto ${classInfo.className} data transfer object
     */
    void update(${classInfo.className}DTO dto);

    /**
     * Get ${classInfo.className} page
     * @param dto query conditions
     * @return page result of ${classInfo.className}DTO
     */
    PageResult<${classInfo.className}DTO> page(${classInfo.className}QueryDTO dto);
}